Removable personal mass storage memory media has been used for many years. Examples of such devices in include floppy discs, read-write CD-ROMs, and flash memory modules. It is well known that the drive and controller units that accept floppies and CD-ROMs include a controllable light that indicates whether the drive is writing to or reading from the media. The system activates the light to advise an operator that the media is being accessed so that the operator does not inadvertently remove the media during a read or write operation. It is well recognized that removing a personal mass storage memory media can interfere with a successful operation. It is further recognized that removing the media during an access can corrupt the data.
More recently, flash memory modules have gained widespread acceptance. Generally, flash memory modules are used in a host digital device that includes a display screen. Examples of such digital devices include digital cameras, personal computers, and personal digital assistants (PDAs). Unlike other personal memory mass storage memory media, flash memory has no rotating media. Thus, the system is not a ‘drive’, but rather an interface unit. Applications for flash memory modules do not include an indicator light. Rather, the host digital device includes an integral display module which is used to advise the operator when the flash module is being accessed. Unlike the indicators on a drives as found in floppies and CD-ROMs, these displays indicate when the CPU in the host digital device has completed its operation to read data from or write data to the flash module.
As is well known, writing data to a flash module takes a finite amount of time that is generally long when compared to writing data to conventional volatile memory, such as addressable RAM, SRAM, DRAM or to a cache. When data is being written to the flash module, often the CPU operates to write the data into the volatile memory. The memory then is transferred from the volatile memory into the flash memory under control of a flash controller mounted on the flash module. Under such a system, it is possible for the CPU to present the message to the operator that the access of the flash memory is complete, when in fact the data was transferred to the volatile memory but not from the volatile memory to the flash memory. The presents the opportunity for the operator to remove the flash module from the interface unit while the data is being transferred from the volatile memory to the flash memory. When this happens the data file is typically corrupted.
Further, unlike floppy discs and CD-ROMs, flash memory modules typically also include integral controllers as well. It is known that the life time for flash memory cells is limited. The integral controllers on flash memory modules often operate to level the wear among the plurality flash memory cells. Certain wear leveling operations include erasing deleted files, moving data and revising the FAT tables. The host digital device is not informed and has no means to learn that the integral controller is modifying data on the flash memory module. Thus, it is possible for a flash memory module to be subjected to an operation of modifying the data, when it is not possible for the host digital device to properly notify the operator and thereby prevent corrupting the data by removing the flash memory module during such an operation. Indeed, in such a circumstance, it is possible for an operator to attempt to access the flash memory module while one such internal memory access operation is occurring. If a data file is corrupted, it is possible that only that file is corrupted. It is possible that other files on the flash module are not lost. However, if the flash memory module is removed while the FAT tables are being modified, it is generally not possible to retrieve any data from the flash module. Typically, in such a circumstance, the entire flash module must be reformatted so that all the data would be permanently lost. It may be possible to use a software application such as Norton™ utility to retrieve any non-corrupted file, however, the success rate of such an operation is not satisfactory.
Additionally, because flash memory cells have a limited life time, and because it is generally not possible for a user to know how many times a particular memory cell or group of memory cells has been written, it is possible for a host system to attempt to program data to a flash cell or a plurality of flash cells that have exceeded their useful life and are no longer functional. When this occurs, the data being written can become corrupted and permanently lost. Also, the performance of a flash cell degrades as the number of program-erase cycles to that cell passes a threshold limit. For certain critical systems, such as a flash module in a flight recorder, such degradation cannot be tolerated. This problem is particularly onerous for systems where the flash module is continuously accessed, for example by a server.
Also, certain flash modules are designed to have spare blocks that are substituted for defective blocks. In such a system, as the number of spares is reduced and becomes zero, the system becomes prone to a catastrophic failure when a program-erase operation is attempted while no good flash blocks remain.
What is needed is an indicator that indicates when a flash memory module is active. What is further needed is an indicator which indicates when a flash memory module is performing an internal memory access operation.